/**
 * Copyright (c) 2013-2022 Nikita Koksharov
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.redisson.client.protocol.convertor;


/**
 * 一个空的转换器类，用于实现通用的类型转换功能。
 * 该类实现了Convertor接口，但其转换方法仅仅执行了简单的类型强制转换。
 * 这种转换可能不安全，使用时应确保转换的对象实际上是目标类型实例。
 * 该类的存在可能是因为某些情况下需要一个简单的转换器实例，而无需复杂的转换逻辑。
 *
 * @param <R> 转换目标类型参数，用于泛型类型指示。
 */
public class EmptyConvertor<R> implements Convertor<R> {

    /**
     * 对给定对象进行类型转换。
     * <p>
     * 该方法通过泛型类型擦除，在运行时实际上等同于对象的强制类型转换。
     * 使用时应确保传入的对象可以安全地转换为指定类型，否则可能抛出ClassCastException。
     *
     * @param obj 待转换的对象，它可以是任何类型。
     * @return 转换后的对象，其类型为泛型参数R指定的类型。
     */
    @Override
    public R convert(Object obj) {
        return (R) obj;
    }

}
